#include<vector>
#include<utility>

template<typename T>
T minimum(const std::vector<T>& A) {
  T min = A[0];
  for (size_t i = 1; i < A.size(); i++)
  {
    if (min > A[i]) min = A[i];
  }
  return min;
}

template<typename T>
std::pair<T,T> minmax(const std::vector<T>& A) {
  T min = A[0];
  T max = A[0];
  for (size_t i = 1; i < A.size(); i++)
  {
    if (min > A[i]) min = A[i];
  }
  return { min, max };
}

int run_main_temp() {
  int irev = minimum<int>({ 1,2,3,4,3 });
  auto igetPair = minmax<int>({ 1,2,3,4,3 });
  return 0;
}
